<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>2021-10-14_m</title>
</head>

<body>

    <!-- 写在哪显示在哪 -->
    <script>
        // 单行注释//   ctrl+/
        //  多行注释 /*   */ 选中要注释的部分  再按shift+alt+a
        // 脚本注释 #!
        //输出html代码
        document.write("<h1>hello</h1>");
        //调试--console.log浏览器控制台显示
        console.log("调试内容");
        //弹框  不同浏览器  显示不一样  弹出层插件--显示 隐藏  使弹窗一样
        // alert("提示信息");
        // confirm("提交");
        //变量   
        // var定义变量 
        //首字母: 字母， 下划线_， $ 其他字母： 字母， 下划线_， $， 数字
        //不能是JS保留关键字 do while if case……
        var str = "a";
        // var $str = "a";
        // var _str = "a";
        // console.log(str);
        // console.log($str);
        // console.log(_str);
        //   字符串string   单引号 双引号引起字符串    使用typeof（）检查其类型
        console.log(typeof(str));
        //   数字型number   只能是数字  正负数，0，小数
        var num = 1.0;
        console.log(typeof(num));
        //  布尔类型 boolean    true，false
        var bool1 = true;
        console.log(typeof(bool1));
        //  对象object  
        // 数组对象，下标不能是自己取得名只是数字，从0开始   取值：数组名[下标], 获取对象的长度： 对象名.length
        var arr = [10, 'hello', false];
        console.log(typeof(arr));
        console.log(arr[2]);
        console.log(arr.length);
        // json 对象   属性:值
        var obj = {
            "name": "plum",
            "age": 18,
            "hobby": ["篮球", "排球", "羽毛球"]
        }
        console.log(typeof(obj));
        // 取对象中的值    对象.属性
        console.log(obj.name);
        console.log(obj["age"]);
        console.log(obj.hobby[1]);
        console.log(obj["hobby"][1]);
        // 动态的得到值
        var key = "name";
        console.log(obj[key]);
        // 函数  function
        function fun() {
            return "hello";
        }
        console.log(typeof(fun));
        console.log(fun());
        // 带参数及默认值
        function fun1(str = ",") {
            // 字符串与变量连接使用+
            return "hello" + str;
        }
        console.log(typeof(fun1)); //function
        console.log(fun1(",world")); //hello,world
        console.log(fun1()); //hello,
        //函数赋变量（匿名函数）   调用函数：变量名();
        var f1 = function() {
            return "hello";
        }
        console.log(f1);
        console.log(typeof(f1));
        console.log(f1());
        // 立即执行的匿名函数
        console.log((function() {
            return "hello";
        })());
        //未定义类型 undefine  声明变量但没有赋值，结果为undefine
        var aa;
        console.log(aa); //undefine
        console.log(typeof(aa)); //undefine
        // null
        var str_1 = "aaaaa";
        str_1 = null; //清空   用完后释放掉
        console.log(typeof(str_1)); //object
    </script>
</body>

</html>